package com.gsnd.gsnd22estore.service;

import com.gsnd.gsnd22estore.dto.*;

import javax.servlet.http.HttpServletRequest;

/**
 * 用户模块的业务逻辑接口
 */
public interface UserService {
    /**
     * 用户登录
     * @param userLd 登陆的对象
     * @return 加密后的token令牌组成的对象
     */
    LoginReturnDTO userLogin(UserLoginDTO userLd);

    /**
     * 获取当前登陆用户的详细信息
     * @return
     */
    UserDTO getUserInfo(HttpServletRequest request);

    /**
     * 用户注册
     * @param userRegisterDTO 获取的表单数据
     */
    void userRegister(UserRegisterDTO userRegisterDTO);

    /**
     * 用户修改密码
     * @param updatePasswordDTO 密码组成的对象
     * @param request 请求对象，用来获取token中的userId
     */
    void updatePassword(UpdatePasswordDTO updatePasswordDTO, HttpServletRequest request);

    /**
     * 修改用户信息
     * @param updateUserDTO 用户表单
     */
    void updateUser(UpdateUserDTO updateUserDTO);
}
